Skip to content

feat: update with changes from Ulmo#39

Closed
nsprenkle wants to merge 45 commits intorelease-ulmofrom
nsprenkle/teak-to-ulmo-cutover
Closed

feat: update with changes from Ulmo#39
nsprenkle wants to merge 45 commits intorelease-ulmofrom
nsprenkle/teak-to-ulmo-cutover

Conversation

@nsprenkle
Copy link
Member

This is a merge of changes from openedx/release/ulmo to what is (in effect) our existing released teak branch (edx/release-teak aliased to edx/release-ulmo).

This should not yet be released, but is a preview of changes for testing purposes.

edx-requirements-bot and others added 30 commits June 16, 2025 00:42
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…edx#1700)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
openedx#1736)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…x#1739)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
BREAKING CHANGE: Pre-design-tokens theming is no longer supported.

Co-authored-by: Diana Olarte <diana.olarte@edunext.co>
The commit adds eventlistener which picks up the autoAdvance message and
triggers the next sequence. This has the same effect of clicking the
next button.

Signed-off-by: Farhaan Bukhsh <farhaan@opencraft.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…x#1713)

* feat: remove waffle flags for managing course outline sidebar

* fix: flag and tests

* fix: product-tours tests

* fix: remove default content for SequenceNavigationSlot and update tests

* fix: remove default content for CourseBreadcrumbsSlot

* fix: update plugin-slots version and documentation

* revert: update plugin-slots version

* fix: update tests
* test: remove snapshots and use rtl tests

* test: add expected result on map search
* test: remove snapshots and use rtl tests

* test: improve coverage on search results test
…nedx#1763)

* feat: use discount info endpoint for streak discount information

* feat: pass course run key to discount code info call

* feat: move changes behind a flag

* fix: use async IIFE inside useEffect

* fix: fix line length

* fix: remove default value in dev

* fix: improve coverage by adding conditional test based on env value

* refactor: move logic inside function

* refactor: move functions to utils

* fix: ignore merge config
Bumps [js-toml](https://github.com/sunnyadn/js-toml) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/sunnyadn/js-toml/releases)
- [Commits](sunnyadn/js-toml@v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: js-toml
  dependency-version: 1.0.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Earlier versions of @openedx/frontend-build used on older version of
'sharp', which caused intermittent installation issues. The version of
'sharp' was updated in @openedx/frontend-build to fix these issues, so
the frontend-build version can be updated here, to fix the issues in
this project too. See
openedx/frontend-build#664 and
openedx/frontend-build#665 for more information.

The frontend-build dependency was updated by:

```
npm install --package-lock-only @openedx/frontend-build
```

Private-ref: https://tasks.opencraft.com/browse/BB-9953
Agrendalath and others added 14 commits September 18, 2025 16:49
The previous implementation had a race condition that sometimes prevented
XBlocks from being marked as viewed. Users had to scroll or resize the window
to trigger visibility tracking instead of having it happen once content loads.
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Remove @edx/reactifex package from devDependencies as it is no longer
needed. Translation extraction functionality has been verified to work
correctly without this dependency.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…9.2 (openedx#1803)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
….2 (openedx#1804)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore: bump frontend-component-header to v6.6.x

* chore: bump frontend-component-header to ^8.0.0
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…enedx#1807)

This commit installs version 2.23.1 of @edx/frontend-lib-learning-assistant.

This release fixes a bug where the Xpert Learning Assistant was only available to learners in the audit and credit modes.

See https://github.com/edx/frontend-lib-learning-assistant/releases/tag/v2.23.1.
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
* feat: add plugin slot for content iframe error component

* style: quality

* fix: copilot suggestions
…den grades" label in the grade table (openedx#1797)

Refactors the grade summary logic to delegate all calculation responsibilities to the backend.
Previously, the frontend was performing grade summary computations using data fetched from the API. Now, the API itself provides the fully computed grade summary, simplifying the frontend and ensuring consistent results across clients.

Additionally, a "Hidden Grades" label has been added in the grade summary table to clearly indicate sections where grades are not visible to learners.

Finally, for visibility settings that depend on the due date, this PR adds a banner on the Progress page indicating that grades are not yet released, along with the relevant due date information.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR merges changes from the openedx/release/ulmo branch, bringing multiple feature updates and refactorings to prepare for testing. The changes should not yet be released to production.

Key Changes:

  • Replaces Chat component with a new LearnerToolsSlot plugin architecture for better extensibility
  • Implements exam data fetching functionality with comprehensive test coverage
  • Updates unit title from h3 to h1 for accessibility compliance
  • Updates certificate image assets and package dependencies

Reviewed changes

Copilot reviewed 30 out of 35 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/plugin-slots/LearnerToolsSlot/* New plugin slot implementation for learner tools (replaces Chat component)
src/courseware/course/Course.jsx Replaces Chat with LearnerToolsSlot, adds navigation logic
src/courseware/course/chat/* Removes old Chat component and tests
src/course-home/progress-tab/* Adds exam data fetching with hooks and Redux integration
src/plugin-slots/UnitTitleSlot/index.jsx Changes unit title from h3 to h1 for accessibility
src/index.scss Adjusts LTI modal height and adds unit-title styling
src/course-home/data/* Adds exams data API, slice, and thunks
src/generic/assets/* Updates certificate images from OpenEdX to edX branding
package.json Updates @edx/frontend-lib-learning-assistant to 2.24.0

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

&& (
<ModalDialog
dialogClassName="modal-lti"
className="modal-lti"
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ModalDialog prop has changed from 'dialogClassName' to 'className'. While this appears to be an intentional API update, ensure that this change is compatible with the version of the Modal component being used and that the modal styling is preserved correctly after this change.

Suggested change
className="modal-lti"
className="modal-lti"
dialogClassName="modal-lti"

Copilot uses AI. Check for mistakes.
unitId={unitId}
/>
</>
{navigationDisabled || (
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The conditional logic here appears inverted. The condition reads "navigationDisabled OR (rest of condition)" but then renders the CourseBreadcrumbsSlot inside. This means the breadcrumbs will render when navigation IS disabled, which seems counterintuitive. The logic should likely be negated to only show breadcrumbs when navigation is NOT disabled.

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 11
import { useEffect } from 'react';
import { useDispatch } from 'react-redux';

import { fetchExamAttemptsData } from '../data/thunks';

export function useGetExamsData(courseId, sequenceIds) {
const dispatch = useDispatch();

useEffect(() => {
dispatch(fetchExamAttemptsData(courseId, sequenceIds));
}, [dispatch, courseId, sequenceIds]);
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hook dependencies include 'sequenceIds' which is an array. This will cause the effect to re-run on every render even if the array contents are the same, because array identity changes on each render. Consider using a stable reference or memoizing the array more effectively, or use a deep comparison for the dependency.

Suggested change
import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchExamAttemptsData } from '../data/thunks';
export function useGetExamsData(courseId, sequenceIds) {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchExamAttemptsData(courseId, sequenceIds));
}, [dispatch, courseId, sequenceIds]);
import { useEffect, useMemo } from 'react';
import { useDispatch } from 'react-redux';
import { fetchExamAttemptsData } from '../data/thunks';
export function useGetExamsData(courseId, sequenceIds) {
const dispatch = useDispatch();
const stableSequenceIds = useMemo(
() => sequenceIds,
[JSON.stringify(sequenceIds)],
);
useEffect(() => {
dispatch(fetchExamAttemptsData(courseId, stableSequenceIds));
}, [dispatch, courseId, stableSequenceIds]);

Copilot uses AI. Check for mistakes.
@nsprenkle nsprenkle force-pushed the nsprenkle/teak-to-ulmo-cutover branch from 9697675 to f4fb3b8 Compare December 23, 2025 22:25
@nsprenkle nsprenkle changed the base branch from release-ulmo to release-teak December 23, 2025 23:00
@nsprenkle nsprenkle force-pushed the nsprenkle/teak-to-ulmo-cutover branch from 097afcf to 444d592 Compare December 23, 2025 23:10
Copilot AI review requested due to automatic review settings December 23, 2025 23:10
@nsprenkle nsprenkle changed the base branch from release-teak to release-ulmo December 23, 2025 23:11
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 65 out of 75 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@nsprenkle nsprenkle force-pushed the nsprenkle/teak-to-ulmo-cutover branch from 444d592 to 7989f6d Compare December 23, 2025 23:18
@nsprenkle
Copy link
Member Author

I think I got something broken here. Closing for now.

@nsprenkle nsprenkle closed this Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.